#include"RBTree.hpp"

template<class K>
class set
{
	struct set_KeyofT
	{
		const K& operator()(const K& date)
		{
			return date;
		}
	};

public:
	typedef typename RBTree<K, K, set_KeyofT>::Const_Iterator Iterator;
	typedef typename RBTree<K, K, set_KeyofT>::Const_Iterator Const_Iterator;
	Iterator begin()
	{
		return _t.Begin();
	}
	Iterator end()
	{
		return _t.End();
	}
	pair<Iterator, bool> Insert(const K& date)
	{
		pair<RBTree<K, K, set_KeyofT>::Iterator, bool> ret = _t.Insert(date);
		return  make_pair(Iterator(ret.first), ret.second);
	}
	void InOrder()
	{
		_t.InOrder();
	}
private:
	RBTree<K,K,set_KeyofT> _t;
};